/*
 * MediaCodecName.cpp
 *
 *  Created on: 2016年5月1日
 *      Author: terry
 */

#include "MediaCodecName.h"

namespace av
{

MediaCodecName::MediaCodecName()
{
}

MediaCodecName::~MediaCodecName()
{
}

struct CodecName
{
	int codec;
	const char* name;
};

static CodecName s_codecNames[] =
{
	{MCODEC_H264, "H264"},
	{MCODEC_HEVC, "HEVC"},
	{MCODEC_G711U, "PCMU"},
	{MCODEC_G711A, "PCMA"},
	{MCODEC_MP3, "MP3"},
	{MCODEC_AAC, "AAC"},
	{MCODEC_AC3, "AC3"},
	{MCODEC_VORBIS, "VORBIS"},
	{MCODEC_RAW, "RAW"},
};

const char* MediaCodecName::getName(int codec)
{
	for (size_t i = 0; i < sizeof(s_codecNames)/sizeof(s_codecNames[0]); i ++)
	{
		if (codec == s_codecNames[i].codec)
		{
			return s_codecNames[i].name;
		}
	}
	return "";
}

int MediaCodecName::codecFromName(const std::string& name)
{
	for (size_t i = 0; i < sizeof(s_codecNames)/sizeof(s_codecNames[0]); i ++)
	{
		if (name == s_codecNames[i].name)
		{
			return s_codecNames[i].codec;
		}
	}
	return MCODEC_NONE;
}


} /* namespace av */
